package pe.com.ztaxi.taxis.model;

import java.util.Date;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.OneToMany;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;

import org.hibernate.annotations.LazyCollection;
import org.hibernate.annotations.LazyCollectionOption;

import com.fasterxml.jackson.annotation.JsonIgnore;

@Entity
@Table
@PrimaryKeyJoinColumn(name = "codConductor", referencedColumnName = "codigo")
public class Conductor extends Persona{
	
	@Column
	private String banco;
	
	@Column
	private String cuentaBanco;
	
	@Column
	private String cuentaInterbancaria;
	
	@Column
	private String numLicencia;
	
	@Column
	private String claseLicencia;
	
	@Column
	private String catLicencia;
	
	@Column
	private Date fechaVencLicencia;
	
	@Column
	private Date fechaIngreso;
	
	@Column
	private Double retencionServCredito;
	
	@Column
	private Double comisionServContado;
	
	@JsonIgnore 
	@Column
	private byte[] foto;
	
	@Column
	private String observacion;	
	
	@Column
	private String estado;	
	
	@JsonIgnore 
	@OneToMany(mappedBy = "conductor")
	@LazyCollection(LazyCollectionOption.TRUE)
	private List<EstadoCuentaConductor> estadoCuentaConductor;

	public String getBanco() {
		return banco;
	}

	public void setBanco(String banco) {
		this.banco = banco;
	}

	public String getCuentaBanco() {
		return cuentaBanco;
	}

	public void setCuentaBanco(String cuentaBanco) {
		this.cuentaBanco = cuentaBanco;
	}

	public String getCuentaInterbancaria() {
		return cuentaInterbancaria;
	}

	public void setCuentaInterbancaria(String cuentaInterbancaria) {
		this.cuentaInterbancaria = cuentaInterbancaria;
	}

	public String getNumLicencia() {
		return numLicencia;
	}

	public void setNumLicencia(String numLicencia) {
		this.numLicencia = numLicencia;
	}

	public String getClaseLicencia() {
		return claseLicencia;
	}

	public void setClaseLicencia(String claseLicencia) {
		this.claseLicencia = claseLicencia;
	}

	public String getCatLicencia() {
		return catLicencia;
	}

	public void setCatLicencia(String catLicencia) {
		this.catLicencia = catLicencia;
	}

	public Date getFechaVencLicencia() {
		return fechaVencLicencia;
	}

	public void setFechaVencLicencia(Date fechaVencLicencia) {
		this.fechaVencLicencia = fechaVencLicencia;
	}

	public Date getFechaIngreso() {
		return fechaIngreso;
	}

	public void setFechaIngreso(Date fechaIngreso) {
		this.fechaIngreso = fechaIngreso;
	}

	public Double getRetencionServCredito() {
		return retencionServCredito;
	}

	public void setRetencionServCredito(Double retencionServCredito) {
		this.retencionServCredito = retencionServCredito;
	}

	public Double getComisionServContado() {
		return comisionServContado;
	}

	public void setComisionServContado(Double comisionServContado) {
		this.comisionServContado = comisionServContado;
	}

	public byte[] getFoto() {
		return foto;
	}

	public void setFoto(byte[] foto) {
		this.foto = foto;
	}

	public String getObservacion() {
		return observacion;
	}

	public void setObservacion(String observacion) {
		this.observacion = observacion;
	}

	public List<EstadoCuentaConductor> getEstadoCuentaConductor() {
		return estadoCuentaConductor;
	}

	public void setEstadoCuentaConductor(
			List<EstadoCuentaConductor> estadoCuentaConductor) {
		this.estadoCuentaConductor = estadoCuentaConductor;
	}

	public String getEstado() {
		return estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}
	
	
}
